package org.ipower.examsystem.service;

import java.util.List;
import org.ipower.examsystem.dao.CatalogDao;
import org.ipower.examsystem.domain.Catalog;
import org.ipower.examsystem.domain.DataField;
import org.ipower.platform.domain.Pager;
import org.ipower.platform.domain.QueryCondition;
import org.ipower.platform.service.TreeDataCollection;

/**
 * 考试科目服务接口。
 * @author jeasonyoung
 */
public interface CatalogService extends ModuleService {
    /**
     * 设置考试科目数据访问接口。
     * @param dao 数据访问接口。
     * */
    public void setCatalogDao(CatalogDao dao);
    /**
     *  查询数据。
     * @param ascProperty 排序字段。
     * @param isAsc  是否升序。
     * @param start  开始索引。
     * @param limit 数据条数。
     * @param entites 查询条件。
     * */
    public Pager<Catalog> findAll(String ascProperty, boolean isAsc, int start, int limit, List<QueryCondition> entites) ;
    /**
     * 获取不包括指定考试科目ID子目录所有子科目集合.
     * @param catalogID 考试科目ID.
     * @return 子科目集合.
     * */
    public List<DataField> NotSelfCatalog(String catalogID);
     /**
     * 获取考试科目树形结构数据。
     * @return 树形结构数据。
     * */
    public TreeDataCollection CatalogTree();
    /**
     * 保存或更新数据。
     * @param data 数据实例。
     * */
    public void saveOrUpdate(Catalog data);
    /**
     * 删除数据。
     * @param catalogID 科目ID。
     * */
    public void delete(String catalogID);
}